A full-stack movie rental application showcasing TanStack DB's query-driven sync capabilities with a highly normalized database.
hljs movie-rentals-tanstack-db/
├── apps/
│ ├── api/ # Elysia.js backend API
│ └── client/ # TanStack Router frontend
└── packages/ # Shared packages
# Install dependencies
pnpm install
# Run both frontend and backend
pnpm dev
URLs:
A modular, type-safe REST API with a normalized database structure:
API Routes:
/api/actors - Actor CRUD operations/api/films - Film CRUD operations /api/categories - Category CRUD operations/api/languages - Language CRUD operations/api/film-actors - Film-Actor relationships/api/film-categories - Film-Category relationshipsFeatures:
Clean, minimal frontend ready for TanStack DB integration:
Pages:
Features:
# Get all actors
curl http://localhost:5000/api/actors
# Get single actor
curl http://localhost:5000/api/actors/1
# Create actor
curl -X POST http://localhost:5000/api/actors \
-H "Content-Type: application/json" \
-d '{"firstName":"Tom","lastName":"Hanks"}'
# Get films by actor
curl http://localhost:5000/api/film-actors/by-actor/1
Highly normalized Sakila database demonstrating TanStack DB's relationship management:
hljs actors ──▶ film_actor ◀── films ──▶ film_category ◀── categories
│
▼
languages
Backend: Elysia.js, Drizzle ORM, SQL.js, TypeBox
Frontend: TanStack Router, TanStack Query, Vite, Tailwind CSS
Monorepo: Turborepo with pnpm workspaces